* Keep the GOT offset in a virtual register for i386 non-darwin platforms. It fixes...
authoryury <yury@3ad0048d-3df7-0310-abae-a5850022a9f2>
Mon, 12 Oct 2015 08:02:56 +0000 (08:02 +0000)
committerPaul Gevers <elbrus@debian.org>
Mon, 12 Dec 2016 20:35:43 +0000 (20:35 +0000)
commitf91e46a209753b1a2ed8d2a038796344352d2d40
treecc693d7a313eecceb84b3fa8257e268efb88b2f5
parentbab3f9287e0ad87142339fe442355e7e2aeaf4c5
* Keep the GOT offset in a virtual register for i386 non-darwin platforms. It fixes PIC code generation with GOT for i386 with enabled optimizations. Bugs #28667, #28668. Prior the fix I have not been able to compile even RTL with -O2 due to not enough free registers, since EBX is reserved for GOT.

  It can be further optimized to teach register allocator to not spill the GOT register if possible.

git-svn-id: http://svn.freepascal.org/svn/ fpc/trunk@32020 3ad0048d-3df7-0310-abae-a5850022a9f2

Gbp-Pq: Name Keep-the-GOT-offset-in-a-virtual-register-for-i386-n.patch
fpcsrc/compiler/i386/cgcpu.pas
fpcsrc/compiler/i386/cpupi.pas
fpcsrc/compiler/i386/hlcgcpu.pas
fpcsrc/compiler/x86/aasmcpu.pas